package com.kpx.app.fragment;

import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.ScaleAnimation;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.kpx.app.R;
import com.kpx.app.adapter.MyPagerAdapter;
import com.kpx.app.base.ActivityBase;
import com.kpx.app.base.FragmentBase;
import com.kpx.app.bean.MenuBean;
import com.kpx.app.utils.uiutils.DisplayUtil;
import com.kpx.app.view.ScrollerLinearLayout;
import com.kpx.app.view.ViewTaskDating;
import com.kpx.app.view.ViewTaskYugao;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 2016/12/20.
 * 我的任务
 */
public class FragmentMyTask extends FragmentBase {

    /**
     * 上一个内容部分
     */
    protected int before;
    /**
     * 右上角的popupwindow
     */
    private PopupWindow popupWindow;
    /**
     * 用于装内容页面
     */
    private List<View> listViews;
    /**
     * 上一个所选择的菜单项页面
     */
    private int before_pager;
    private TextView txt_filter;
    private ImageView img_1;
    private ImageView img_2;
    private RadioGroup group_task;
    private ViewPager vp_content;
    private ViewTaskYugao vyugao;
    private ViewTaskDating vdating;

    @Override
    public int setLayout() {
        return R.layout.fragment_task;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        DisplayMetrics dm = new DisplayMetrics();// 取得窗口属性
        getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);// 窗口的宽度
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        initView();// 初始化view
    }


    /**
     * 初始化view
     *
     * @version 1.0
     * @createTime 2015年1月4日, 下午5:38:25
     * @updateTime 2015年1月4日, 下午5:38:25
     * @createAuthor chencong
     * @updateAuthor chencong
     * @updateInfo (此处输入修改内容, 若无修改可不写.)
     */
    private void initView() {
        // 初始化view-------------------------------------------
        // 加号按钮
        txt_filter = (TextView) rootView.findViewById(R.id.txt_filter);
        img_1 = (ImageView) rootView.findViewById(R.id.img_1);
        img_2 = (ImageView) rootView.findViewById(R.id.img_2);
        // 迪讯的菜单
        group_task = (RadioGroup) rootView.findViewById(R.id.group_task);
        // 迪讯内容的容器
        vp_content = (ViewPager) rootView.findViewById(R.id.vp_content);

        // 初始化选项-------------------------------------------
        before_pager = R.id.radio_dating;// 默认初始显示第一个页面
        before = 0;// 设置初始选择的菜单

        // 初始化数据-------------------------------------------
        listViews = new ArrayList<View>();// 用于装内容页面
        vdating = new ViewTaskDating(getActivity(), this);
        vyugao = new ViewTaskYugao(getActivity(), this);
        listViews.add(vdating);// 添加迪讯的消息部分
        listViews.add(vyugao);// 添加迪讯的好友部分

        vp_content.setAdapter(new MyPagerAdapter(listViews));// 设置viewpager的适配器
        vp_content.setCurrentItem(before);// 设置默认位置
        vp_content.setOnPageChangeListener(new MyOnPageChangeListener());// 设置viewpager的监听事件
        registerEvent(getActivity());// 设置点击事件

        // 设置popupwindow
        txt_filter.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
//                initPopupWindow();// 弹出popupwindow
            }
        });
    }

    /**
     * 初始化并弹出popupwindow
     *
     * @version 1.0
     * @createTime 2015年1月5日, 下午5:29:48
     * @updateTime 2015年1月5日, 下午5:29:48
     * @createAuthor chencong
     * @updateAuthor chencong
     * @updateInfo (此处输入修改内容, 若无修改可不写.)
     */
    private void initPopupWindow() {
        ((ActivityBase) getActivity()).hideSoftKeyboard();
        View contentView = View.inflate(getActivity(), R.layout.pop_task_show_filter, null);// 初始化popupwindow布局

        popupWindow = new PopupWindow(contentView, -2, ViewGroup.LayoutParams.WRAP_CONTENT);// 实例化popupwindow
        popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));// 要想播放动画一定要设置背景
        int[] location = new int[2];
        popupWindow.setFocusable(true);// 设置焦点
        popupWindow.setOutsideTouchable(true);// 设置外部触摸会关闭窗口
        popupWindow.update();// 更新状态
        // 设置显示位置
//        popupWindow.showAtLocation(img_add, Gravity.LEFT | Gravity.TOP, location[0] - DisplayUtil.dip2px(getActivity(), 90), location[1] + 65);
        // 给popupwindow设置动画效／果
        AlphaAnimation aa = new AlphaAnimation(0.0f, 1.0f);
        aa.setDuration(200);
        ScaleAnimation sa = new ScaleAnimation(0.5f, 1.0f, 0.5f, 1.0f, Animation.RELATIVE_TO_SELF, 0.9f, Animation.RELATIVE_TO_SELF, 0f);
        sa.setDuration(200);
        AnimationSet set = new AnimationSet(false);
        set.addAnimation(aa);
        set.addAnimation(sa);
        contentView.startAnimation(set);
    }

    /**
     * 注册菜单的选中事件
     *
     * @param context
     * @version 1.0
     * @createTime 2014年12月31日, 上午10:58:41
     * @updateTime 2014年12月31日, 上午10:58:41
     * @createAuthor chencong
     * @updateAuthor chencong
     * @updateInfo (此处输入修改内容, 若无修改可不写.)
     */
    private void registerEvent(final Context context) {
        group_task.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                ((ActivityBase) getActivity()).hideSoftKeyboard();
                switch (checkedId) {
                    case R.id.radio_dating:
//                        txt_filter.setVisibility(View.INVISIBLE);
                        vp_content.setCurrentItem(0);
                        img_1.setVisibility(View.VISIBLE);
                        img_2.setVisibility(View.GONE);
                        break;
                    case R.id.radio_yugao:
                        img_2.setVisibility(View.VISIBLE);
                        img_1.setVisibility(View.GONE);
//                        txt_filter.setVisibility(View.VISIBLE);
                        vp_content.setCurrentItem(1);
                        break;
                }
            }
        });
    }

    public void refreshData(MenuBean b) {
        group_task.check(R.id.radio_dating);
//        vdating.showCategery(b);
    }

    public void refreshData() {
        vdating.refreshData();
        vyugao.refreshData();
    }


    /**
     * 用于监听页面的滑动
     *
     * @author chencong
     * @Description TODO
     * @date 2015年1月10日
     * @Copyright: Copyright (c) 2015 Shenzhen Tentinet Technology Co., Ltd. Inc. All rights reserved.
     */
    public class MyOnPageChangeListener implements ViewPager.OnPageChangeListener {

        @Override
        public void onPageSelected(int arg0) {
            switch (arg0) {
                case 0:
                    before_pager = R.id.radio_dating;
                    break;
                case 1:
                    before_pager = R.id.radio_yugao;
                    break;
            }
            group_task.check(before_pager);// 设置指定位置的选中状态
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
        }
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }

}
